

(defun swap (l)
  (setf tmp (cons (car (last l)) nil ))
  (setf l2 (copy-list l))
  (nconc tmp l2)
  (copy-list tmp))

(defun recur (l)
  (replace l (swap l))
  (loop for x in l do
       (if (listp x) (replace x (recur x)) ))
  l)
  

(setf myList `(5 5 (3 4 5 /) (1 2 3 +)  *))
(print myList)
(defun main ()
  (setf myList (recur myList))
  (print (eval myList)))

(main)